// 请求相关的方法

import axios from 'axios'

// 导入NProgress加载进度条
import NProgress from 'nprogress'
import 'nprogress/nprogress.css'

// 参数formData化
import qs from 'qs'

const token = sessionStorage.getItem('token')

// 初始化一个axios对象
var instance = axios.create({
    // 接口地址根路径
    // baseURL: 'http://192.168.1.52/mini/index.php',
    // 配置好的服务器
    baseURL: 'http://47.108.233.244/mini/index.php',
    // 超时时间
    timeout: 30000,
    headers: {
        'Authorization': 'Bearer ' + token,
        'content-type': 'application/x-www-form-urlencoded',
    }
});
// axios.defaults.withCredentials = false;
// 添加请求拦截器
instance.interceptors.request.use(function(config) {
    // 在发送请求之前做些什么
    NProgress.start()
    return config;
}, function(error) {
    // 对请求错误做些什么
    NProgress.done()
    return Promise.reject(error);
});

// 添加响应拦截器
instance.interceptors.response.use(function(response) {
    // 对响应数据做点什么
    NProgress.done()
    return response;
}, function(error) {
    // 对响应错误做点什么
    NProgress.done()
    return Promise.reject(error);
});


// 创建一个get请求方法
let get = async(url, params) => {
        let { data } = await instance.get(url, { params });
        return data;
    }
    //  创建一个post请求方法
let post = async(url, params) => {
        let { data } = await instance.post(url, qs.stringify(params))
        return data;
    }
    //  创建一个put请求方法
let put = async(url, params) => {
        let { data } = await instance.put(url, qs.stringify(params))
        return data;
    }
    //  创建一个delete请求方法
let Delete = async(url, params) => {
    let { data } = await instance.delete(url, { params })
    return data;
}

// 导出方法
export {
    get,
    post,
    put,
    Delete,
}